﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
using HomeCare.View;
using System.Data;

namespace HomeCare.Model
{
   public class EstadoDados
    {
       
       Conexao con = new Conexao();

        public bool InsereEstado(Estado estado)
        {
       
            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = String.Format("insert into Estados (Estado, Sigla) values ('{0}','{1}')", estado.estado, estado.sigla);
            try
            {
                SqlCommand cmd = new SqlCommand(query, sql);
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                sql.Close();
                return true;
            }
            catch (Exception ex)
            {
                
                //throw new Exception("Erro ao Inserir Estado.");
                sql.Close();
                MessageBox.Show(ex.Message);
                return false;
            }
        }


        public bool AlteraEstado(Estado estado)
        {
            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = String.Format("update Estados set Estado='{0}', Sigla='{1}' where id='{2}'", estado.estado, estado.sigla, estado.id);
            try
            {
                SqlCommand cmd = new SqlCommand(query, sql);
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                sql.Close();
                return true;
            }
            catch (Exception ex)
            {
                //throw new Exception("Erro ao Alterar Estado.");
                sql.Close();
                MessageBox.Show(ex.Message);
                return false;
            }
        }


        public bool ExcluiEstado(Estado estado)
        {
            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = String.Format("delete from Estados where Id='{0}'", estado.id);
            try
            {
                SqlCommand cmd = new SqlCommand(query, sql);
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                sql.Close();
                return true;
            }
            catch (Exception ex)
            {
                //throw new Exception("Erro ao Alterar Estado.");
                sql.Close();
                MessageBox.Show(ex.Message);
                return false;
            }
        }

        public DataSet ConsultaEstado(Estado estado)
        {
            SqlConnection sql = con.Conectar();
            sql.Open();
            string query = "select * from Estados where (1=1) ";
            query += String.IsNullOrEmpty(estado.sigla)? String.Empty :( String.Format(" and Sigla like '%{0}%' ", estado.sigla));
            query += String.IsNullOrEmpty(estado.estado) ? String.Empty: (String.Format(" and Estado like '%{0}%' ", estado.estado));
            query += " order by Estado ";
            try
            {
                SqlDataAdapter dataAdapter = new SqlDataAdapter(query, sql);
                DataSet dataSet = new DataSet();
                dataAdapter.Fill(dataSet);
                sql.Close();
                return dataSet;
                
            }
            catch (Exception ex)
            {
                sql.Close();
                throw new Exception("Erro ao Consultar Estado.");
                //MessageBox.Show(ex.Message);
                
            }
        }


    }
}


